This proposal is in response to NIH Program Announcement PA-02-141 "Continued Development and Maintenance of Bioinformatics and Computational Biology Software." AutoDock is a widely distributed community code, used for the prediction of biomolecular interactions. It was initially developed 15 years ago to solve the flexible ligand-protein docking problem. In the intervening years both the AutoDock user community and the program have grown. AutoDock source has been licensed to over 2,200 academic laboratories and is now being used for a wide variety of modeling tasks, including protein-protein docking. We are now proposing to extend the usefulness, usability and maintainability of AutoDock, and to enhance the interactions between the users and developers by restructuring and further development of the code utilizing contemporary software engineering practices. Our recent experience with the object-oriented scripting language Python has shown us that an agile, component-based, "language-centric" approach to software development can produce code that is easily extensible, inter-operable, maintainable, and platform independent. To attain our goals, we will: 1) restructure the AutoDock suite into a component based framework; 2) expand AutoDock capabilities utilizing this framework by extending the treatment of molecular representations, search methods, and scoring functions; 3) enhance and extend the graphical user interface, analysis and visualization tools to facilitate ease of use; and 4) develop and provide support mechanisms for the AutoDock community of users and developers for training, documentation and communication. Our proposed efforts in this direction will both serve the increasing needs of the biomedical community for robust, maintainable, and freely available academic computational biology software and will demonstrate the power and flexibility of modern software design technology.